Memory_Kernel Interface

Memory
<linux/slab.h>
1. 커널 물리적 메모리 동적 할당/해제
void* kmalloc(size_t size, int flags); //
void kfree(void* obj); //
커널 메모리 할당: 최대 크기 제한 있음(초기 12KB, 현재는 조금더 커짐)
물리적 주소 공간에서 연속적인 메모리를 할당

flags:
GFP_USER(사용자 프로그램용 메모리 할당)
GFP_KERNEL(커널용 메모리 할당, sleelp 가능)
GFP_ATOMIC(인터럽트 핸들러 등에서 사용, sleep 불가) 등
2. 커널 가상 메모리 동적 할당/해제
void* vmalloc(unsigned int len); //
void vmfree(void* addr); //
커널 메모리 할당, 크기 제한 없음
가상 주소 공간에서 연속적인 메모리 영역을 할당